#ifndef TEST_CHARACTER_ENCODING_TEST_H_
#define TEST_CHARACTER_ENCODING_TEST_H_

#include "messi.h"
#include <vector>
#include <string>
namespace elloop_test {

	class EncodingTest : public Messi {
	public:
		EncodingTest();
		~EncodingTest();
		virtual EncodingTest* run() override;
	
		bool containEmoji();

        void printWString();
        void printString();
        void printWCHAR();

        unsigned int utf8_to_unicode(const std::vector<unsigned char> & utf8);
        const std::vector<unsigned char> unicode_to_utf8(unsigned int unicode);
        const std::vector<unsigned char> unicode_to_utf8(const std::string & hex_string);
        std::string utf8_to_hex_string(const std::vector<unsigned char>& utf8);

        void testUtf8ToUnicode();
        unsigned char convert_to_int(const std::string & bytes);
        void testReadingHexString();

        unsigned int hexstring_to_int(const std::string & str);
        int hexChar_to_int(char hex_char);
        std::string convert_byte_to_hex_string(unsigned char t_byte);
        void using_the_unicode_to_utf8();
    };


}

#endif